# 本makefile用来将同目录下所有c文件用cc编译，所有cpp文件用cxx编译，然后打包成目录同名静态库，放到build目录
DIR_NAME := $(lastword $(subst /, ,$(shell pwd))) # 本目录名
OUT_LIB = ../../build/lib$(strip $(DIR_NAME)).a # 输出的静态库文件

SRCS := $(wildcard *.c) # 遍历所有c文件
OBJS := $(SRCS:.c=.o) # 替换文件后缀
SRCS_CPP := $(wildcard *.cpp) # 遍历所有cpp文件
OBJS_CPP := $(SRCS_CPP:.cpp=.o) # 替换文件后缀

CFLAGS := -Wall -Werror -Wshadow -g -fpic -I./
LDFLAGS := -lpthread

all:
	$(MAKE) $(OBJS) $(OBJS_CPP)
	$(AR) -rcs $(OUT_LIB) $(OBJS) $(OBJS_CPP)

%.o: %.c
	$(CC) $(CFLAGS) -c $< -o $@

%.o: %.cpp
	$(CXX) $(CFLAGS) -c $< -o $@

clean:
	rm -f $(OBJS) $(OBJS_CPP) $(OUT_LIB)